FreeCAD-Homepage
FreeCAD-Homepage copied to clipboard
[WIP] FreeCAD's websites improvements initiative - Step 1 : Homepage and blog migration
Nota bene: this issue is work-in-progress, more content will be added or changed following provided feedback
TL;DR
The gist of this first step of the websites improvements initiative is to prepare the Homepage and the Blog for the coming release of version 1.0 with a new, easier to maintain, documented and more accessible and welcoming website, using the common platform (the static site generator Hugo).
Context
FreeCAD's websites infrastructure has been developed organically over the years. It is made up of various parts which interact differently both for the end-user and the content contributor. Moreover they do not communicate easily with each other, they do have a different logic data-wise and incoherent visual designs. All this contributes to a problematic maintenance and is not advantageous for the project's impact. However, there are a number of positive qualities to be retained from the present state, which can serve as useful references for any improvement.
Early 2024, an initiative was launched by some Design Group contributors to review and improve the situation. This is the first step in a multi-year initiative.
This step has two simultaneous objectives : update the most crucial parts of the infrastructure in preparation for the release of FreeCAD 1.0, and lay the foundations for a set of guidelines and documentation for the websites infrastructure and maintenance.
Problems
Linked issues
Requirements
Note that this is a subjective appreciation, no strict criteria have been used.
+++ indicates a high importance or a high fulfillment (works great)
++ indicates a medium importance or a medium fulfillment (works ok)
+ indicates a low importance or a low fulfillment (works poorly)
General
| Requirement | Importance for FreeCAD websites | Current Homepage implementation | Current Blog with WordPress | Unification with Hugo SSG |
| Type | does not apply | custom dynamic website without database | dynamic CMS with database | static site generator |
| Softwares and frameworks | does not apply | Bootstrap, jQuery, PHP, Crowdin | PHP, MySQL/MariaDB | Go, JAMStack |
| License | +++ most free and open possible | ++ MIT and proprietary (Crowdin) | +++ GPLv2 | +++ Apache 2.0 |
| Development model | +++ open or community-based | ++ Community and private company (Crowdin) | +++ WordPress Foundation and community | +++ Community |
| Timeline | +++ long established and long-term support | ++ 19-77% all web, >12 years, unknown (Crowdin) | +++ 43% all web, >20 years | +++ 11 years |
| Software cost | +++ free of charge or moderate price | +++ free, free for non-commercial Foss (Crowdin) | +++ free, most plugins are free | +++ free, most themes are free |
| Accessibility | +++ most devices and languages | ++ possible but implementation lacking | +++ extensive guidelines and tools | +++ extensive guidelines and tools |
| Performance | ++ efficient and low bandwidth | ++ simplicity helps with speed, images make it slow | ++ needs database queries, but caching can help | +++ very fast, simplicity helps, images preprocessed |
| Security | +++ most secure and reliability | ++ needs lib updates and some knowledge | ++ core secure if updated, attention to plugins ! | +++ quite secure, specially with no JS |
Workflow
| Requirement | Importance for FreeCAD websites | Current Homepage implementation | Current Blog with WordPress | Unification with Hugo SSG |
| Content management | +++ most WYSIWYG for low barrier of entry | ++ needs a bit of HTML/CSS know-how | +++ integrated Gutenberg block editor | ++ needs a bit of Markdown know-how |
| Medias management | +++ most WYSIWYG for low barrier of entry | ++ needs a bit of HTML/CSS know-how | +++ integrated Gutenberg block editor | ++ needs a bit of Markdown know-how |
| Blog posts support | +++ integrated with filters | + possible but not in current form | +++ main "raison-d'être" | +++ main "raison-d'être" |
| Translations management | ++ translation in context | ++ not in full context, requires Crowdin and scripts | ++ needs a dedicated plugin, see below | ++ needs some setup, but then easy |
| Style management | ++ easy adjustments while customisable | ++ needs a bit of HTML/CSS know-how | +++ themes and templates | +++ themes and templates |
| Revision control | ++ git integration for changes follow-up | +++ git for all files, continuous deployment | ++ git for wp-content, continuous deployment | +++ git for all files, continuous deployment |
| Deployment | ++ easy dev > staging/testing > prod setups | ++ needs a bit of git know-how | ++ needs a bit of git know-how | ++ needs a bit of git know-how |
| User accounts management | ++ single easy and secure system | does not apply | ++ user management with roles in wp-admin | does not apply, can have authors data files |
| Maintenance and debugging | ++ status, admin functions, setup, backups | ++ no easy maintenance access, backups via git | ++ many status, admin, backup tools | ++ setup needed, backups via git |
Scalability
| Requirement | Importance for FreeCAD websites | Current Homepage implementation | Current Blog with WordPress | Unification with Hugo SSG |
| Extensibility and integration | ++ large existing possibilities and reusability | ++ needs development, but no real limits | ++ large ecosystem and examples | ++ needs development, large ecosystem, but no real limits |
| Plugins | ++ extensive choice, easy setup, support | does not apply | ++ large choice, setup and support variable | ++ front-end framework or headless CMS possible |
| Custom | ++ ability to accommodate custom solutions | ++ needs development, but no real limits | ++ using WordPress hooks | ++ using Go modules |
Proposal
- Make the Homepage and the Blog work together, on the same platform (Hugo) with a similar workflow used FreeCAD-wide (Pull Requests to the Git repositories, here with Markdown files) . This way, the Blog becomes really part of the main website, and not a additional different body (is this ringing any bell ?) This allow to reuse some of the already existing content (converted to Markdown files) while deprecating separated and cumbersome maintenance parts (the present Homepage and the Blog) .
- Develop a simple to use design that promotes the FreeCAD project efficiently, for the version 1.0 release and the future. Every page or external link should be accessible in 3 clicks at most (ideally 2 for the most used ones). The experience should be on-par for every language and device (desktop, mobile, etc.). Also take the opportunity to improve the donation pages and provide a pleasant space for release notes.
- Set some simple documentation for content contributors to the new unified website (blog posts, translations, medias, texts), while providing a deeper access to experienced contributors (web developers and admins) to tweak advanced features (theme, templates, config, etc.). Instructions for managing the different environments (development, testing, production) and version-control are included. Guidelines to ease maintenance, workload and prevent security issues are included. A references section and a list of contacts within the FreeCAD project (admins, editors, translators, etc.) to welcome new contributors are also included.
- Setup simple and efficient Testing and Production environments with Continuous Integration and Continuous Deployment. For Testing directly on the repository with GitHub Pages and for Production on the dedicated web server.
Design
Structure
├─ Homepage ├─ Features ├─ Download ├─ Releases ├─ News ├─ Documentation ├─ Community ├─ Contribute ├─ Donate └─ About
WIP mockups
Homepage
Features Page
Download Page
Release Notes Page
News Page
Deliverables
- The completed and validated design, before the implementation begins.
- The base of documentation and guidelines, to be improved while the site is implemented.
- The website migration bringing together the Homepage and the Blog, with previous content or placeholders for future content additions.
- A new repository for follow-up tasks, issue reports and improvements.
Resources
The design and development work is mainly carried out by marcuspollio, with inputs and feedback from the Design Group (mainly Max, JigglyBuff , Obelisk, Mistermaker, Kadet, Alex, Reqrefusion) and some maintainers (Yorik, Chris and Kurt). Some of them have offered to do code review, testing or content contributions. Translators have not been formally contacted at this time. A larger request for content (texts, illustrations, video, example files, etc.) will be made after the first deliverable is completed.
Indicative roadmap
- Complete this design task and incorporate feedback : from May
- Setup of a development environment : June-July
- Feature Freeze of FreeCAD : 3 June
- UI Freeze of FreeCAD : 24 June
- Migration of unified website in a testing environment with GitHub Pages : July-August
- Documentation and guidelines draft : from August
- Testing and improvements of unified website : from August
- Release of FreeCAD 1.0 : end 2024
- Addition of features to unified website (social media, comments, download, donate, events pages, etc.) : early 2025
- Cleanup of the present Blog database (posts, tags, user accounts, etc.) : early 2025
- Backup of current Blog database, conversion to Markdown, fixes and upload to unified website : early 2025
- Content contributions request (texts, illustrations, video, files, etc.) : from early 2025
- Selection of contributed content and its addition to unified website : from early 2025
- Request for translations and their addition to unified website : from early 2025
- Finalization of the documentation and guidelines : 2025
- Setup of the final production environment for unified website : 2025
- Release of the new unified website : 2025
Questions
- more to be added soon
My 2 cents here, I'd say why not, indeed having both the blog and the website as one single structure seems a good thing, and wordpress is certainly a capable platform to do this. However, I also see problematic points to be studied:
- "one of the most troublesome parts of the FreeCAD websites ecosystem (the present Homepage)" seems an arbitrary assessment to me. The bog, for ex, is currently far more "problematic" than the homepage. As I agree having both into one would be good, problems should be identified a bit clearer.
- The simplicity of the current homepage is what allows it to be open-sourced and guarantees it to be easily tweaked and fixed by contributors. Being done on wordpress, it basically ceases to be open-source. That's a problem for an open-source project :)
- We chose wordpress for the blog because we needed a blog and it was easy & quick, but being tied to a platform quickly becomes a problem. See our mediawiki problem. Now we're wanting to go back to a simpler, markdown structure. How do we guarantee the same will not happen with wordpress.
- If it's not open-source anymore, that means it relies on designated people, as the community is not able to PR anymore. How do we guarantee maintainability in that case.
- Translations is something very important to the community, and needs to be very carefully designed. Relying on plugins can easily become a problem (see the wiki experience).
- How would the after-download donation/thankyou system work?
Hi @yorikvanhavre Thanks for your feedback and sharing your concerns !
You're not wrong in saying that using a fully-fledged solution like a dynamic CMS using a database (WordPress), it's posing a number of obstacles to the open nature and accessibility for contributors of this part of the FreeCAD project, as accounts need to be set up, not everything is as transparent as on a git repository, there's the question of assigning specific roles, maintenance and the big point of translations too.
So the plan has a bit changed in between. The idea is to continue this effort to reunite the main website and the blog, and to go instead with a static site generator. In this case Hugo. From our investigations, this solution seams more appropriate than Jekyll (used for the FPA and the Developers Handbook) for this step 1. Its simplicity, flexibility, extensive community, fast !, very few plugins needed (most functionality out-of-the-box like minification), native multilingual support make it a sensible choice, in spite of the initial learning curve (mostly due to Go templating).
We are currently setting up a development environment and doing some tests, while advancing the design. Mockups will be posted here soon.
The initial post has also been updated to reflect this change. Open to feedback as always =D
So the plan has a bit changed in between. The idea is to continue this effort to reunite the main website and the blog, and to go instead with a static site generator.
YES! I like that solution much. My own blog is entirely composed of markdown files and uses a static generator (pico). Once it's set up, it's pretty straightforward, and it's all a question of creating templates, pretty much like wordpress. And you can keep the contents in a clean folders structure that is gitable, browsable and everything good.
Hugo seems appropriate, I looked at it at the time I set mine up and seemed too hard to install (laziness always :sweat_smile: ) so I went for pico, but pico is less actively maintained, which is something I'd prioritize for FreeCAD
@prokoudine any insight here?
Hi all, I'm a regular contributor writing posts on the FC Blog. I'm not as technically versed in the web stuff but I am very much available if you want any insights as to what I/we would like in terms of functionality on the blog. Until earlier this week there were some really big functional issues with the blog, like no page break/truncation of posts, titles of posts not being links, no author names etc. After some research I suggested a wordpress template that Alex implemented and mitigated some of this. FWIW re the blog it's worth noting that it has a variety of content from tutorials to WIP updates etc so it needs a variety of stuff to work for all types of content well. One thing currently missing for example is image expansion on click or rollover which makes detailed tutorial content a pretty poor experience for the reader. Anyway.. happy to trial stuff/feedback or help in any way I can. Jo
FYI, I've just installed this lightbox plugin: https://archetyped.com/tools/simple-lightbox/
[...] want any insights [...] happy to trial stuff/feedback or help [...]
Hi Jo, Yorik and Alex, thank you for your input !
Indeed, the general idea is to integrate the Blog (called "News" in the Structure mockup above, the name is open to change of course) a lot more into the general website. I'll try to post mockups of the preliminary design next week =D
It's planned to have the most recent post (title, featured image and summary if space allows) of every blog/news category displayed on the Homepage. Nothing is settled yet, but the gist is to have a base taxonomy with six different categories (announcements, events, developments, tutorials, showcases and highlights) that more-or-less match the current ones in WordPress. The first three are more "official" posts while the three latter are more "community" posts, although the difference is somewhat fuzzy and arguable ;D The new "highlights" one is still a bit vague and very open, but could be a way for community vote/award to highlight the work/involvement of some individuals or groups on projects related to FreeCAD, e.g. educational, external workbench/addon development, particular regional/language group or even slightly different topics about design, CAD, documentation, community/participatory projects, every month or season. So every category will have a dedicate template and prefilled archetype (a way to add new per-formatted content easily in Hugo). When we reach this point (tailor the template and archetype) we will certain need your help (and Alex's and others).
The same goes for translations : ease as much as possible the work to add and manage content, despite the lack for the moment of WYSIWYG like WordPress (a headless CMS would be needed, maybe for later). Also, the way Hugo works, most non-list pages act a bit like a blog post, e.g. release notes, downloads pages, dedicated events pages, learning pages, donations pages, translations, etc. It's just the way the templates reuse the content and front matter data that changes. So anyone familiar with Markdown and after adding a few posts in the blog/news will be able to tweak/add content to the whole site. At first, on-boarding should be easy, then with time digging more into the powerful features like templates will make more sense.
We'll setup a testing environment in a repository soon, still very much work-in-progress, but it will provide a test bed for improvements to the general design, interaction and content management.
-
Also, contrary to WordPress that is using a database, a static-site generator uses a hierarchical folder structure (like on one's device). With time, the blog/news will accumulate quite a lot of posts making a very long blog/news section folder. Which organization structure is preferred ? By date (e.g. 2022, 2023, 2024, 2025 folders) or by category (e.g. announcements, events, developments, tutorial, showcases, highlights folders), or something else ? Note that all these informations (date, author, language, tags, categories, etc.) will be in the front matter of every file too, so it's more to help organize the website structure.
-
Concerning the blog/news posts, the design we're heading to for the moment is a bit "old-school" without any comments possibility. Is this feature needed ? Do we have the resources to moderate them ? Are comments on the main website a good place to engage with the community or do we already have sufficient places for that ? It's open.
-
We will also quickly need help to improve the website documentation so content can be quickly added as soon as the new unified website enters a close-to-production state. The current one is very lacking. I tried to add some more on the Developers Handbook but did not progress much since.
-
The current WordPress blog content will also need to be ported to the new website. Do any of you know a good WP to Markdown converter (ideally tailored for Hugo) ? There are some here, and there and probably more, but haven't tested any yet. On the indicated timeline above, this will need to be done around end-July early-August.
Finally, we will keep you all informed as this progresses, hopefully fast enough... 1.0 is around the corner XD So any help is most welcome. Thank you again !
Commenting on posts could be done in many ways that do not require additional moderating. Specially with social media that becomes easy, one could imagine posting new articles automatically to twitter/mastodon/facebook/forum/etc, and let people comment there.
@luzpaz this might interest you too
I liked that! Some remarks:
- It needs to be responsive: How will it look on mobile screens?
- The release notes are usually built on the wiki. Will there need to be work each time to "port" them to the website? Of course we would like for the wiki to become markdown some day. There might be something to be done there...
- I don't think we should put the sponsors on the main web page. The main web page is for users, not for sponsors. If you want to sponsor FreeCAD, it's because you trust the project and want to help it, not because you want to promote yourself. Look at https://blender.org for example, although they have huge sponsors, they don't appear on the main page. IMHO it is very important to make that clear
- One aspect I like in the current website, is also that it "feels like yours". (Same for blender.org). So I'd put some effort in making it easy to browse, use bigger text, few and easy to find buttons, etc. We want kids to use FreeCAD too. That's the difficulty we need to master here, have something cool for both kids and for CEOs ;)
Hi @yorikvanhavre ! Thank you for the feedback.
- responsive [...]
I haven't done a mockup for the mobile version. If you look at the general layout, it's a grid (rows with 2 or 3 columns). In the mobile format, each "cell" will follow one after another. You can have a look at the base theme I'm developing our custom forked theme on here. Is it good enough ?
- release notes [...]
It's indeed unfortunate to duplicate some effort on two places. However, pending further progress on the wiki/documentation, we felt it was important to promote the release of version 1.0 in an attractive way on the new unified website. For now, what is proposed here on the mockup (and is of course subject to change) is to highlight in a simple manner the 5 to 7 main great features of the new release (TNP mitigation, Assembly, Material, Sketcher, CAM and BIM rename, UI/UX and Measure), while having links to the full notes on the wiki. We don't have the resources yet to promote it fully à la Blender way, later maybe =D So yes, this question is an aspect to consider as both the new unified website and wiki/documentation projects progress. The time available before release is too tight for properly engineering it, so let's keep this aspect on the TODO list when 1.0 is out. I guess the main question is: where is the best place to highlight new releases ? How do you feel about it ?
- sponsors on the main web page [...]
I completely agree, it's not required and could convey a false signal. This aspect was suggested by looking at the Godot, QGIS and other FOSS websites. With a dedicated donations page like currently, having the same information on the HomePage is redundant. Let's make a neat donations page and leave only the mention of the FPA association on the HomePage. Is it OK for you ?
- feels like yours [...]
Absolutely, and you can tell it's still very much Work-In-Progress. The general idea is to have a website that's easy to use, to the point, with a limited number of pages (which also helps with maintenance) and where the information is clear and accessible. As we'd like to have as little JavaScipt as possible, we still haven't decided whether to include a search function or not. Any opinion on it ? So, for the time being, the chosen approach is that of an “old-school” site, i.e. not a product where the web experience is the key focus to generate more traffic or revenue (e.g a social networking platform, an online store or a search engine), but rather a simple page-structured website with simple navigation and little interactive content (like the current website). The intention is for users to use the FreeCAD software and engage with its community instead of spending time on its website (be in the room with others rather than on the doorstep reading the menu card). However, in developing the theme, we thought we'd have a few aspects that evoke the CAD domain, design, etc. with subtle colors and patterns, rather than a more generic site appearance (but it won't be a machine gallery or Sketchfab-like). Do you have particular suggestions (composition, text size, buttons, colors, etc.) ?
Here are a few other questions to help move the design validation forward :
-
News/blog categories and management. Are the six categories proposed above (announcements, events, developments, tutorial, showcases, highlights) validated ? Any preference for news/blog folders managements (category or year) ?
-
Content production. The idea, when the design is more-or-less endorsed, is to ask the wider community to contribute content for the website : texts (and translations later), illustrations (screenshots, pictures of IRL projects, events, renders, etc.) and examples models (the repo hasn't been updated in 4 years... updates ones, new version 1.0 ones, all ideally with a small description text). This needs a little organization to decide what, how many, how and which ones. I'll ask among the Design Group if there's people wanting to help organize it. Any recommendation ?
-
Promotion videos. In the mockups above, I left 2 places where videos could fit (on the HomePage just below the news and on the 1.0 Release Notes). But the big question is : do we want videos ? Is the general "Discover FreeCAD" or the temporary "Version 1.0" more useful ? Does the FPA want to contract a talented member of the community for it ? I personally cannot commit to producing such content but can help define general guidelines if needed.
I'll try to update and post new mockups here very soon. Thank you =D
Cool! I think this is going well. Agree with everything above.
- categories [...]
I would think this needs to stay flexible, and things might change in the future... I would try to propose a sensible choice now, and define a smart system so it's easy to manage
- content [...]
Definitely! Involving the community is the best way to go
- videos [...]
Yes, the problem is always "who is going to do them" :) We are never sure if we'll have videos and when. Here too I would try to stay flexible
Hi @yorikvanhavre , @chennes , @concretedog , @prokoudine and @kkremitzki !
I hope you're all keeping well and enjoying the summer (or winter) time !
Sorry for not giving many news on this website project, I have been quite busy with IRL stuff lately =D
However, I have now setup a WIP testing environment for this new unified website, which can serve as a development base to continue this initiative and hopefully, be somewhat ready along the 1.0 release.
Here you can find the temporary repository. I recommend you have a look at the WIP Readme.
The website in live on GitHub Pages. There are still quite a lot to do, add, change, tweak, of course =P.
You can see the planned todo items on the Issues of the repository.
Please, do test, let it know what you dislike, let it know what you find great =D
The big question, I guess, is whether to launch this new unified website along the release of FreeCAD 1.0 ? Ideally, yes ! But it's not easy to predict where either will be "ready" =P What do you think ?
2 questions for now:
-
@yorikvanhavre what license to use. The current FreeCAD.org website uses LGPL. Should we use CC for the content instead ? I reused a bit of MIT code for the theme folder.
-
@chennes and @kkremitzki when migrating from the temporary repository (on my account) to the future official one (on the FreeCAD org), there are some stuff on FreeCAD-homepage that may need to be kept (addons-cache, Crowdin, etc.). Which strategy do you recommend for these "non-website" related stuff ?
Thank you
Of course, it is impossible to object at this point. I liked the fluid nature of the current site better. The proposal in its current form seems very lifeless. The proposed layout is very monotonous, very routine. Of course, this can definitely be overcome. But I will miss the handmade feel of the current site.
Also, it's not nice to be dependent on anything, even if it's open source. I'd rather it be as vanilla as possible.
Hi all. Just taken a look at the preview on the github pages. I really like what I see! Thanks for all the work on this. I of course am mostly interested in the blog style content and I'm really pleased to see the stuff like image expansion on click etc as it can make tutorial readability and use much better for readers.
One thing myself and @prokoudine have been discussing recently, which is a small but challenging functionality, is automating new content announcements to fosstodon and X. At the moment Fosstodon is automated in the wordpress site but it just grabs the first arbitrary amount of characters and a link and toots. It's great as it means everything gets mentioned there, but it's crappy in terms of being a crafted toot. In other wordpress work (Tindie/Hackspace) they use a paid plug in "Jetpack" which adds a little window to write a toot/tweet and automates delivery to different platforms on publication of new content. I'm wondering if there is a solution for this type of functionality for the new site?
Again, thanks for all the hard work on this.
I think it's looking good and coming along very well. But indeed there is probably still a long way until it's complete enough to replace the current website.
There is an "in-between" solution being worked on at #178 , which I think would be in a good shape for 1.0 (which might be coming rather soon). I think yours here needs more time, also because we want it to stay working for a long time. So I'd say: Keep going, but let's not hook this to 1.0 because it's worth taking the required time to do it well.
Regarding @Reqrefusion 's remark, I also like the simplicity of the current design, and I think it's important that people visiting the site feel it's a community project and not a commercial tool. FreeCAD is for everyone, it's "your own parametric modeler", and that's important to show, IMHO.
That said, I don't see anything contrary to that in your design. It's mostly the kind of contents and text being shown that will transmit that message. And at the moment, since there is none, obviously it's hard to tell.
I like much the structure where all the content is in one place. That should work pretty well and even allow, for example, to keep the contents somewhere else and gitmodule it into the website structure.
I very much like the structure, organization and flow of this so far. While I think we need more people to contribute content, it may be a good idea to start filling images with 'FreeCAD' stuff, even if they are only place holders in order to get a better feel for how this will look.
There really is a lot to like about this so far. I agree with Yorik about not necessarily tying this to the release of 1.0 as I imagine it will be a herculean effort to crunch this in time and that would increase the likelihood of problems caused by rushing. Thanks for all of the work put in so far Marcus!
Hi @Reqrefusion , @concretedog , @yorikvanhavre and @obelisk79 !
Thank you all for the kind words and encouragements, it's motivating to hear that it seems to be heading in the right direction. =D
As you all noticed, there's still quite a lot to be done until it's mature enough for broader use. I'm also in favor of taking the time to develop this properly, so thank you for your support and understanding on this matter. If we reach a sufficiently advanced stage for FreeCAD day and hackathlon (Fosdem 2025), it would be great to present the project !
To Jo: all the blog features I have in mind are not there yet, but will be added gradually after discussions depending on your (and others) needs and feedback. The image zoom in/out expansion is quite simplistic for the moment. I have also implemented a "lightbox" feature where all medias (images, videos, others) of the current page can be seen in full-screen and switched between them with arrows, but it's disabled for now because of some other issues. As for the social media linking, there's nothing yet. I'll have to dig a bit about this stuff, as I'm not a user of these platforms. I suppose there are solutions, either already existing or implementable. I guess you would like ways in both directions: reference a post/comment from Mastodon/X/whatever into a news article, and publish an extract/announcement of a news article on these platforms. Maybe the custom Description or Summary fields in the front matter of the article file can be used for this second case. I'll come back later with hopefully concrete steps.
To Yorik: indeed, the state of this unified website is a bit dull for the moment, as it's mostly a boilerplate for future development. In that sense, beyond lacking content, most of the theme layout aspects are subject to change. Yeah, having all the content in simple Markdown in one folder is very convenient. There are still a few strings or other medias/data outside of it (in the theme folder), but I'll try to move as much as possible as development progresses. Could you please have a word with other maintainers about the license question I posted above. It's by no means urgent, but it would be nice to get it sorted out. As for the Donation page, I haven't got any further yet. I'll contact you personally as soon as there's progress.
@yorikvanhavre what license to use. The current FreeCAD.org website uses LGPL. Should we use CC for the content instead ? I reused a bit of MIT code for the theme folder.
Oh sorry I had missed that one. I would do exactly that, LGPL for the code (it's compatible with MIT so you can have MIT files in it) and CC for the contents.
Hi there,
A little update on this unified website project. Lately changes have been mostly under-the-hood so the code base is in a better shape, making it hopefully easier for other contributors too. There is still quite some cleanup to be done before being satisfied enough to develop new features and content. So the user-facing bits haven't changed much yet.
There is one aspect I would like to discuss: the Donate page.
In its current form on the official website, it is really verbose. Most recent FLOSS donate/fund pages (Blender, Godot, Krita, all based on Blender's code by the way) focus on numbers and the donation process per se. While FreeCAD's or QGIS's display some info on why and how donations matter.
IMHO, as member of several non-profit associations or sport clubs, the projects/activities aspect is a key point: we may identify with and are more driven by concrete and tangible goals, and be incentivized to donate. The list of projects supported by a grant is already available on the FPA website, but you really have to look for it... !
So, in addition to the standard elements (donation form, procedure, donors list, etc.), I can imagine a simple and nice presentation of the projects and their status. It can be managed in Markdown only, or in data files (XML, YAML, JSON, etc.), on the same repo or as a module, it is more a technical choice.
What do you think ?
Also, I will be traveling and moving continent in the next few months, and will not resume until around January. Discussion can of course continue in the meantime. Thank you =P
Yes, totally agree.. This donation page is the first we have ever done, it should evolve of course, and definitely show more and talk less :)
Hi there ! I hope you are all doing well !
So, here is an update on this unified website prototype:
Recently, I had a bit of fun adding a way to add and change content on the site, via a "serverless" (or "headless") Content Management System.
It works with an Admin page on the website which is in fact some JavaScript that allows you to interact with the content of the Git repository, by adding, modifying or deleting content (articles, text, images, fields, etc) in a "user-friendly" way. Hopefully, it will be useful for contributors unfamiliar with Markdown, Git and other technicalities =D Also, contrary to a dynamic CMS, it does not need a database. Only the changed files or lines are committed to the repository, the rest still being statically generated.
You can access it by logging in with your GitHub account, so changes will be committed with you as author, or locally on a clone of the repo (more on that below). It uses the WIP Sveltia CMS project and is setup as a module, so that does not impact the rest of the website code (content, theme, assets, etc.)
Some illustrations :
From the Admin page, you can login locally or via GitHub (an authentication GitHub app gets your account ID to allow you to commit to the repo) :
From the selected Collection on the left list (News articles or other pages), you can select the Article or Page you want to edit or create a new one :
You can edit the Articles or Pages on the left panel, using different fields and widgets (string, list, dropdown, boolean, date, media, content, etc.) and have a simple Preview on the right side. Languages and localization are supported, just select the relevant locale/language button on the top, or fill in directly with the default English content :
So, to test, you can either go directly on the admin page here, or do it the local way.
For the latter, you must have a web browser that supports this feature, sadly not Firefox nor Safari for the moment. Then, follow these steps and use the https://localhost:1313/admin URL. At the Admin login page, select your local directory for the cloned repository. The rest is the same as above, except that when you save, it doesn't make a commit on the repo but saves locally. So you have to submit a PR the usual way for the changes to be added to the site.
This is still very WIP mind you =P
How do you like it ? Does it seem to solve some of the problems to add and edit content ?
@FreeCAD/design-working-group ^ FYI
If WordPress is not preferred for CMS, as it was stated that it was not preferred due to the use of a database, then I think all other options have equal weight. So it doesn't matter if it's Sveltia or anyone else. It seems like a way to make PR preparation easier. I think the problem here is how easy it makes it.
Having managed several projects running on Hugo and Jekyll, I would only request to choose a solution that doesn't break themes and shortcodes too often to keep maintenance efforts to a minimum.
Hi all !
Thanks for your comments here, I'll answer them below.
During the FreeCAD Day in Brussels, I presented shortly the current state of this initiative and the prototype being built. Feedback was really encouraging. So I would like to continue working on this project in 2025.
The idea for this year would be to reach the state of a Minimum Viable Product, maybe deployed to a temporary sub-domain of the official website to get more testing and feedback, before eventually replacing the current website next year.
With @concretedog we agreed we should setup some online meetings to coordinate a bit this effort, maybe every 2-3 months or so. I will continue to post updates here for people not attending these discussions. Can you please let me know here or via other channels (forum, email, Discord, I have the same username) if you'd like to attend these meetings or not. We could setup a first meeting in March-April depending on your availability. @prokoudine @yorikvanhavre @chennes @Reqrefusion @obelisk79 @kadet1090 @hyarion
These are roughly the points to discuss for this first meeting, or here of course :
- Overall structure and design (main pages and news blog) both from a functional perspective and technical one
- Features (lightbox, comments, toots/links to social media, funding/sponsors workflow) to have for the first MVP, features to implement later
- Accessibility and compliance with modern web standards
- Maintenance and code review
- Timeline and next steps
For Turan and Alex, your comments mostly concern the recently added Content Management System. The one I chose for the moment (Sveltia) is indeed very WIP and lacks for now quite a few important features for our use case (editorial workflow, Git backend agnostic, nested collections, CSS support in the preview panel, etc.) That said, the developers are really fast and they plan to release an official version this year. We'll see if we can keep this solution or have to use another one. For the moment, I propose to keep it unless someone here argues for the contrary.
There is no concern to have regarding theme breaking, as it is totally separated. It's more a matter of how easy the features we need for the website are implemented in the theme and how easily they are exposed via the CMS.
As for shortcodes, for now they are quite minimal and not exposed via the CMS in a user-friendly manner (you can still edit/add them in the Markdown widget). We should indeed discuss this very aspect : what do we need and how it could work.
Thanks for your engagement on this initiative =D
A video meeting in march/april seems like a good idea! (more april please 😅 )
Meetings can indeed be helpful. However, I believe that an agenda needs to be created for these meetings. Meetings are often unproductive without an agenda.
@Reqrefusion isn't what the above points list already provide (could be more detailed of course) ?