-
Notifications
You must be signed in to change notification settings - Fork 379
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Website Design Update #2046
Comments
Hey team, @moul, @gfanton , @zivkovicmilos, @leohhhn To bootstrap this FE/design project, we should consider the following elements: Given that gnoweb is a web tool used by developers during the smart-contract creation workflow (localhost focused), but also by general users to view the render of all indexed realms (kind of smart contract browsing): 1. Browser Compatibility
2. Accessibility:
3. SEO
4. Security
5. Third-Party Scripts
6. Front-End Tooling
7. Code Structure
8. Performance
9. Developer Experience
I will take care of addressing these questions and providing solutions with a plan next week. I have many ideas for these. But some are important such as the browser compatibility. I would recommend a good balance to target JS/CSS feature used by more than 95~96% of users. Also maybe targeting IE might be too much mut maybe we want to target more and even 100%. Feel free to discuss further. |
We've started working on a setup with @gfanton. We've started setting up the project and decided that rendering the front-end via Go on the back-end would be most efficient (with a good Ops of course). Given the UI/UX and goal of Gnoweb, this approach allows us to avoid frameworks, speeding up development and keeping the project lightweight. Especially with a general Gno / Gno codebase and associated developers who are more familiar with Go language. Also, by rendering Markdown on the server-side, we eliminate front-end delays, providing several benefits for SEO, UX, and UI. Server-side rendering ensures faster page loads and better SEO by delivering content-rich pages to search engines directly. It also enhances the user experience by reducing perceived load times and improving UI consistency. Additionally, we'll handle code syntax highlighting on the server-side instead of using Highlight.js, ensuring consistent and fast rendering. We'll utilize vanilla JavaScript (TypeScript) for adding web components to enrich the Markdown rendering. Therefore, this plan will mostly focus on CSS rendering while leaving JavaScript for enhancing UI components (in a next PR). Finally, here is a draft of propositions. Some may be challenged as there is always pitfalls and other ways to structure the projects. 1. Browser Compatibility:
2. Accessibility Compliance:
3. Front-End Workflow:
4. Code Organization:Class Abstraction vs. Utility Classes: Discuss the preference between using many utility classes directly in HTML or abstracting them into custom classes with the @apply directive. This decision should be based on team consensus, considering the project's needs for readability, maintainability, and scalability.
5. Performance Optimization:(bundler related)
6. SEO Strategy:
7. Third-Party Scripts:
8. Security Measures:
9. Documentation:Tools: Us JSDoc for code documentation (JS/TS files). 10. Design and UX:Design System: Create a design system or component library to ensure a consistent and intuitive user experience. |
Since the server-side development might be stalled because @gfanton is busy and to keep things moving forward, I propose that we finish the design this week and work on the front-end using static mockup data. We can focus on HTML and CSS only. This approach has several advantages IMO:
I think this is a practical way to proceed and would appreciate your thoughts on this proposal. |
Sounds super cool !
I suggest checking out https://biomejs.dev/ for the linting and formatting part. I haven't personally tried it, but I like the idea of having a single opinionated tool for both linting and formatting. For the server-side, I recommend using https://github.com/a-h/templ as a templating system:
For Markdown rendering, I suggest using https://github.com/yuin/goldmark. We need to keep in mind how to extend the Markdown syntax (#439). My goal is using this library to extend the Markdown capacity and create a library that we can easily use for
Yes, unfortunately I will be quite busy this month and may move slowly. If you can start working on this without relying on me, that would be fantastic. |
Hey 👋 After some exchanges with @gfanton, here is a list of design proposals for this refactoring to address the requirements in this issue. Goals:
These changes aim to address the issues raised by improving both the visual consistency and the user experience across the site. By focusing on minimalistic design (easy to maintain by default and to update), optimizing HTML/CSS/JS, and ensuring a seamless user experience, I hope to create a more efficient and user-friendly website. @gfanton However, one thing we should consider is the shell (header, navs, footer). They are currently tied to the gno.land website. As a gnoweb user, I would prefer to avoid having gno.land menus visible. This could be confusing if I'm building my own website (DAO, etc.) on gnoweb, as my users might see the gno.land navigation at the top, which they may not be interested in. In my opinion, we should keep these elements in the footer for consistency but avoid including them in the default navigation. The default navigation should be clean and either customizable or very relevant to the realm itself. It something we should think about. Regarding the design/branding itself, the green color might also be too opinionated and a very clean/refined version could looks like that: Of course I would be happy to iterate over this concept (and ideas) to refine and polish it. |
Looks great at a first glance.
Neats:
|
Thank you for your feedback @grepsuzette! Few words regarding your neats:
|
We aim to update the design of our main website. The current design could benefit from a more minimal, simple, and efficient approach in terms of space and speed. We invite you to propose solutions and be considered to take ownership of this project component.
We're looking for someone to:
Before starting, we'd like you to give feedback on these proposed changes and define your plan to tackle this project. Once we agree on the plan, you can proceed with the redesign.
The text was updated successfully, but these errors were encountered: