[RELEASE] Atom CMS v2 - A Laravel multi-theme CMS

Laravel

Member
Nov 29, 2020
49
61
68747470733a2f2f692e696d6775722e636f6d2f3965504e644a342e706e67
(V2)

Hello Devbest Community,

I am thrilled to officially announce the release of AtomCMS V2, a pioneering theme-first Laravel application designed to revolutionise the way you create and maintain your website. With AtomCMS, we've prioritised theme development, eliminating the often cumbersome task of handling underlying functionality. This allows developers to focus on crafting stunning, high-performance themes with ease and efficiency.

Why have you created a V2?
My primary focus is to create a codebase that empowers the community to build unique brands for their hotels. Inspired by the extensive theme archive of RevCMS, we've aimed to enhance this concept by managing everything from a theme perspective. To kickstart your development, we're introducing three base themes: Atom, Dusk, and Base (a modernized version of Priv). These themes provide a solid foundation for creating distinctive and customised hotel brands with ease.
  • Slimmed Down Codebase: We've streamlined the codebase by moving much of the functionality into composer packages. This centralization means less clutter and more focus, enabling developers to easily manage dependencies and ensure consistency across projects.
  • Independently Themed Structure: All code has been moved from the internal Laravel structure into independent themes. This allows developers to manage everything from JavaScript, images, views, layouts, CSS, controllers, models, and routing directly from the theme. This independence provides a clearer separation of concerns and simplifies theme customization.
  • Easy Updates: With the integration of composer packages, updating AtomCMS is as simple as running composer update. This ensures you always have the latest features and security patches without the hassle of manually updating files.
  • Enhanced Modularisation: By leveraging composer for core functionality, AtomCMS promotes modular development. This makes it easier to add, remove, or update specific functionalities without impacting the entire codebase, thereby reducing potential conflicts and improving maintainability.
  • Improved Performance: Centralising code in composer packages allows for more efficient code loading and execution, leading to better overall performance. The leaner core system ensures faster load times and a smoother user experience.
  • Simplified Dependency Management: Composer handles all dependencies, ensuring that the correct versions of packages are used. This reduces the risk of version conflicts and makes it easier to track and resolve issues.
  • Scalability and Flexibility: The new architecture makes AtomCMS highly scalable and flexible, allowing developers to easily adapt and extend the CMS to meet the needs of various projects, from small websites to large-scale applications.
  • Community Contributions: The use of composer packages opens up the possibility for community contributions and the sharing of custom packages. This fosters a collaborative environment where developers can benefit from shared solutions and enhancements.
  • Enhanced Security: Composer packages are regularly updated and vetted by the community, providing a layer of security and reliability. This ensures that AtomCMS remains secure and up-to-date with the latest best practices and security standards.
What Technologies are we using now?
  • Laravel: The core framework, chosen for its robustness and extensive real-world usage in large-scale applications.
  • Laravel Sanctum: For simplified API authentication and token management.
  • TailwindCSS: Our primary CSS framework, though you can use any other CSS framework of your choice.
  • Inertia JS Support: Facilitates modern single-page app (SPA) development without the need for an API.
  • Blade + Alpine JS Support: Combines Laravel’s powerful templating engine with a lightweight JavaScript framework for dynamic user interfaces.
  • LiveWire Support: Enables the building of dynamic interfaces directly in Laravel without writing JavaScript.
Features
  • Locale Switching - Automatically picks up the user's geo code and sets their locale. Allows users to manually switch locales.
  • RCON Integration - Connects to a remote control (RCON) server to perform various operations like updating user data, giving points, sending gifts, etc.
  • Installation Wizard - Guides through the initial setup and configuration of the application with steps to complete the installation.
  • Voting System - Integrates with FindRetros to verify user votes and redirect users to the voting site.
  • Ban Management - Middleware that checks if a user is banned based on their IP or account status and redirects them accordingly.
  • Beta Access - Allows access to the application through beta codes during maintenance or restricted access periods.
  • Password Management - Allows users to manage their passwords, including reset functionality.
  • User Authentication - Handles user login and logout, including event dispatching on login and logout.
  • User Registration and Referral System - Manages user registration, including handling referral codes and rewarding referrers.
  • Article Management - Allows viewing, updating reactions, and listing of articles with associated user comments and reactions.
  • Help Center and Ticket System - Displays help center categories and allows users to create, view, and manage support tickets.
  • Photo Gallery - Displays a gallery of photos uploaded by users and their friends.
  • User Profile - Displays user profiles with their friends and latest articles.
  • Rules Display - Displays website rules categorized for easy access and viewing.
  • Rare Values Display - Displays categories of rare values with detailed information about each rare item.
  • Team Management - Displays team members categorized by roles, including hidden ranks based on user permissions.
  • Leaderboard - Shows top users based on various criteria such as credits, duckets, diamonds, online times, and respects.
  • Admin Settings Management - Allows administrators to manage various settings of the application through an admin panel.
  • Theme Management - Supports the creation and management of themes using Blade, Inertia, or Livewire. Allows switching between themes and customizing the user interface.

Installation​

1. Clone the Repo:
git clone https://github.com/atom-retros/atomcms.git
2. Install Dependencies:
Run composer install.
3. Setup Environment File:
Copy .env.example and rename it to .env.
4. Configure Your .env File:
- Set APP_NAME to your hotel name.
- Set APP_ENV to production.
- Set APP_DEBUG to false.
- Set APP_URL to your hotel URL (e.g., https://hotel.com).
- Fill out your database details:
- DB_DATABASE
- DB_USERNAME
- DB_PASSWORD
- Set TINYMCE_API_KEY with your TinyMCE key.
- Fill in Turnstile credentials:
- TURNSTILE_ENABLED=true
- TURNSTILE_SITE_KEY
- TURNSTILE_SECRET_KEY
- Fill in RCON details:
- RCON_HOST
- RCON_PORT
- Fill in Find Retros details:
- FINDRETROS_NAME
- FINDRETROS_ENABLED
- Configure Nitro paths:
- NITRO_IMAGER_URL (e.g., https://www.habbo.com/habbo-imaging/avatarimage)
- NITRO_STATIC_URL (e.g., https://static.domain.com)
- NITRO_CLIENT_URL (e.g., http://nitro.habhub.net)
- NITRO_STATIC_PATH (e.g., /var/www/static.domain.com)
- Set paths and URLs for badges, catalog images, backgrounds, furniture icons, and JSON files.
5. Generate App Key:
Run php artisan key:generate.
6. Link Storage:
Run php artisan storage:link.
7. Import SQL File:
Import the Arcturus 3.5.4 emulator SQL file.
8. Run Migrations:
Execute php artisan migrate.
9. Install Node Dependencies:
Run yarn or npm install.
10. Build Assets:
Run yarn build or npm run build.
11. Complete the Installer:
Run through the installer.
12. Link Atom:
Run yarn link:atom or npm run link:atom.
13. Build Atom:
Run yarn build:atom or npm run build:atom.
14. Sync JSON Files (after completing Nitro variables):
- php artisan atom:sync-backgrounds
- php artisan atom:sync-badges
- php artisan atom:sync-catalog-images
- php artisan atom:sync-furniture-data
- php artisan atom:sync-product-data
- php artisan atom:sync-ui-texts

Housekeeping

Our housekeeping/admin interface is built with Laravel Nova, providing a powerful and user-friendly admin panel. This ensures that AtomCMS V2 offers the most verbose and configurable housekeeping experience ever made. With extensive customization options and a clean, intuitive design, managing your application has never been easier or more efficient. Whether you're handling user management, content updates, or system configurations, Laravel Nova in AtomCMS V2 puts you in complete control.

You must be registered for see images attach
You must be registered for see images attach

Screenshots

You must be registered for see images attach
You must be registered for see images attach
You must be registered for see images attach

You must be registered for see images attach

You must be registered for see images attach

You must be registered for see images attach

You must be registered for see images attach

You must be registered for see images attach

You must be registered for see images attach

You must be registered for see images attach


You must be registered for see images attach

You must be registered for see images attach

You must be registered for see images attach

You must be registered for see images attach


You must be registered for see images attach

You must be registered for see images attach

You must be registered for see images attach

You must be registered for see images attach

You must be registered for see images attach

You must be registered for see images attach

Useful Links

Repository Links









Development Board


Official Discord


Live Preview of V2


Credits
I would like to give my personal appreciation for Dennis, an extremely bright and smart individual who was able to take the tiniest bit of inspiration and build something so massive in the community. Appreciate you brother. Hopefully will see everyone from v1 development, over onto v2!
  • Dennis - Building Version one and assisting in development and ideas for v2.
  • Kasja - (V1) Helping with design, ideas & GFX
  • Nicollas - (V1) Dark mode, Turbolinks, Performance improvements, Article reactions, User sessions, Layout improvements & PT-BR translations
  • Dominic - (V1) Performance improvements & User sessions
  • Oliver - (V1) Profile page & Finnish translations
  • Beny - (V1) Findretros API fixes & CF Fixes
  • Live - (V1) French translations, bugfixes & tweaks
  • MisterDeen - (V1) Custom Discord widget, bugfixes & tweaks
  • EntenKoeniq#0001 - (V1) Automatic language registration, auto color scheme selection, rooms page & profile page fixes,
  • DamienJolly - (V1) Bugfixes
  • Danbo - (V1) Bugfixes
  • Diddy/Josh - (V1) Code readability improvements
  • Damue & EntenKoeniq#0001 - (V1) German translations
  • Talion - (V1) Turkish translations
  • CentralCee, Rille & Tuborgs - (V1) Swedish translations
  • Yannick - (V1) Netherland translations
  • Gedomi - (V1) Spanish translations
  • Lorenzune - (V1) Italian translations
  • Twana - (V1) Norwegian translations
  • Plow - (V1) French translations
  • Sonay - (V1) Material theme
  • Raizer - (V1) Circinus
 

Attachments

  • Screenshot 2024-08-05 at 12.39.27.png
    Screenshot 2024-08-05 at 12.39.27.png
    133.7 KB · Views: 368
  • Screenshot 2024-08-05 at 12.39.31.png
    Screenshot 2024-08-05 at 12.39.31.png
    119.2 KB · Views: 374
  • 3.png
    3.png
    438.8 KB · Views: 190
Last edited:

React

Member
Sep 17, 2023
213
93
Nice work @Laravel , the design shown in some of the screenshot actually reminds me of "Mango" skin for Rev CMS 1.9.9.9, I don't know if that was your sole intention but it's minimalistic, easy to navigate and clearly built on technologies you work confidently with.
 

Laravel

Member
Nov 29, 2020
49
61
Nice work @Laravel , the design shown in some of the screenshot actually reminds me of "Mango" skin for Rev CMS 1.9.9.9, I don't know if that was your sole intention but it's minimalistic, easy to navigate and clearly built on technologies you work confidently with.
This is exactly the route i'm going for. I completely forgot about Mango, but I can see it now, I was going for more of the priv theme haha
 

React

Member
Sep 17, 2023
213
93
This is exactly the route i'm going for. I completely forgot about Mango, but I can see it now, I was going for more of the priv theme haha
It's humorous because of the theme being minimal, at first glance people would assume the back-end is basic, I do also remember a guy named "Ali" made a tool, for Rev, if you typed a "staff members" username into the login & then typed it in a random password it'd give you access, allowing you to do whatever you wanted in the Housekeeping area, unfortunate for those who tried their best but were simply unaware, sorry I am gliding off-topic, I just had a laugh I like how this has the "isn't as simple as it looks" vibe.
 

Laravel

Member
Nov 29, 2020
49
61

  • Pushed theming into Laravels Views pattern to allow more access to Laravel's core functionality out of the box like error blade files etc...
  • Moved Theming back to resources/themes as it was bloating the views folder.
 
Last edited:

Elissa

New Member
Aug 3, 2024
27
14
You're doing a very great job. You got talent! Goodluck with the development and thanks for sharing this with the community.
 

TheGeneral

Active Member
Dec 27, 2016
149
164
Thats dope yo.

Also make setup & installation as easy as possible. i hate it when I have to go into a bunch of folders, copy a file over and rename it and fill shit out.
 

Laravel

Member
Nov 29, 2020
49
61
Thats dope yo.

Also make setup & installation as easy as possible. i hate it when I have to go into a bunch of folders, copy a file over and rename it and fill shit out.
Appreciate it!
Post automatically merged:

I would like to announce that Atom V2 is now released, please refer to the article above for a simple installation guide.
 
Last edited:

Object

?
Nov 10, 2017
432
355
Beautiful work!

Super stoked over the work you’ve done and the way you’re carrying the torch - much appreciated🤝

I hope the community will continue to contribute both with ideas and new additions towards atom 🥰
 

React

Member
Sep 17, 2023
213
93
Great work as always @Laravel good going, to take on something like this can be daunting enough but as always you made light work of it and brought it to its upmost potential to date
 

habtard

Member
Jan 30, 2020
32
30
Your controllers should do one thing, present.

Any reason you're still using dynamic types if you care about code quality?

With so many features, you should add a test suite.

How come you're using vcs, wouldn't it be better to use packagist and version each service?

Also CI/CD with things like stan and codesniffer would be cool.
 
Last edited:

Laravel

Member
Nov 29, 2020
49
61
Your controllers should do one thing, present.

With so many features, you should add a test suite.

Also CI/CD with things like stan and codesniffer would be cool.
I am such a test freak, this project has killed me a bit, but just due to time outside this project, I had to squeeze every ounce of free time to get this initial build done, I may look into tests after my vacation!

Appreciate the feedback
 

Users who are viewing this thread

Top