InstantClick VS ActiveAdmin

Compare InstantClick vs ActiveAdmin and see what are their differences.

InstantClick

InstantClick makes following links in your website instant. (by dieulot)

ActiveAdmin

The administration framework for Ruby on Rails applications. (by activeadmin)
Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
InstantClick ActiveAdmin
4 22
5,515 9,447
- 0.3%
0.0 9.3
almost 6 years ago 2 days ago
JavaScript Ruby
MIT License MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

InstantClick

Posts with mentions or reviews of InstantClick. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-05-09.
  • Instantclick.js – making navigation effectively instant
    1 project | news.ycombinator.com | 28 Mar 2024
  • Show HN: Hyvor Blogs – Multi-language blogging platform
    9 projects | news.ycombinator.com | 9 May 2023
    Redis for cache

    PHP isn’t dead. It definitely has some weirdness introduced in older versions that cannot be removed due to backward compatibility promises. However, recent versions of PHP have improved performance and developer experience significantly. Also, we use strict types and PHPStan [https://phpstan.org] (max level) to ensure type safety. And, we try to have 95%+ coverage using Pest PHP [https://pestphp.com]. With those tools, writing PHP is fun. Laravel saves a lot of time by abstracting away many HTTP, queue, and CLI-related tasks. MYSQL is the single source of truth. We sync data to Meilisearch for search. Laravel Scout makes syncing effortless. Redis is used for caching and queues.

    More details on the open-source software we use are available here: [https://blogs.hyvor.com/docs/oss]

    Theme Development:

    In Hyvor Blogs, all themes are fully customizable. We wanted to make the theme development process as friendly as possible for developers. Being a hosted software, this is quite hard. Developers aren’t fond of (including me) editing a file on the browser to make something work. Providing an online web editor to create themes wasn’t an option. So, we created a simple CLI tool [https://github.com/hyvor/hyvor-blogs-cli] that developers can install locally via NPM. This CLI tool listens for file changes and syncs all theme files to a development blog in our production system. So, developers can make changes in their local editor and see changes with almost no delay. This has worked pretty well so far!

    Theme Structure:

    We wanted to keep the theme structure simple. No Javascript frameworks - just plain old-school HTML because it works the best with search engines, minimizes the data transfer required between the server and the browser, and even provides a better experience for end users.

    We obviously needed a templating language to render HTML from data. There were many options like Handlebars, Liquid, and Twig. All do the job. We went with Twig because its original package is written in PHP and managed by the Symfony team so we could trust it and easily integrate it into our system.

    Another thing we cared about a lot is creating standardized theme guidelines. For example, if you take WordPress themes, most themes have their own structure and are very different from each other. This adds a learning curve to each theme. To prevent that, we created standardized theme guidelines for all published themes to follow. We also standardized how common things in blogs like color theme switching, searching, language switching, etc. work. This helps users switch between and customize their themes effortlessly.

    Then, there is one important thing we realized. “The structure of a blog is very simple”. First, you might think you need several stylesheets, jQuery, bootstrap, etc. NO! Just one stylesheet and barely some vanilla javascript for interactive elements like search. Realizing this helped us further improve theme performance. In our themes, the developer writes several SCSS files inside the /styles directory. This makes it easier for them to manage styles in chunks. Then, we convert all SCSS files into a single styles.css when loading it in the blog. That way, only 1 HTTP request is needed for styles - it’s super fast!

    You can see more about theme development here: [https://blogs.hyvor.com/docs/themes-overview]

    All official themes are free and open-source. [https://github.com/hyvor/hyvor-blogs-themes]

    We have ported multiple open-source themes, and now working on a couple of original themes as well.

    Caching:

    We incrementally cache content using “first-request caching”. If you visit a post in the blog, the response is dynamically created and cached. Subsequent responses are served from the cache until the blogger updates the post.

    This is highly efficient and scalable. Also, there is no building step involved as in Netlify or similar static hosting platforms. You can immediately see changes but also benefit from caching.

    The cache is saved on a Redis server in our data centers, but we may try CDN edge caching in the future.

    Multi-language support:

    Multi-language support is probably the most unique selling point of Hyvor Blogs. The first version of Hyvor Blogs did not have a multi-language feature. Adding that feature took a lot of careful thought and effort, but it was totally worth it. I can safely say there’s no other hosted blogging platform that makes managing multiple languages as easy as Hyvor Blogs does.

    First, we had to figure out what data was translatable. For example, post content, description, etc. Then instead of saving that data in the `posts` table, we created a new `post_variants` table to save them linked to a specific `language_id`. The blogger can create multiple languages and each entity (`post` , `tag` , `user`) can have variants for each language.

    Additionally, we integrated DeepL [https://deep.com] to let bloggers automatically translate posts into many languages.

    Data API filtering:

    Our Data API [https://blogs.hyvor.com/docs/api-data] returns public data of the blog. This is also internally used in themes to fetch additional data. If you think about filtering data (ex: posts), one may want to filter `published_at < {time}` while another wants `published_at > {time}`. If we went with the normal API approach, we’d need many query parameters like `published_at_greater_than`, `published_at_less_than`, etc. That’s ineffective. So, we wrote a little query language called FilterQ to take a single `filter` input parameter and safely convert it to the `WHERE` part of the SQL query. With it, you can call the API with `filter=published_at>{time}` param. And, it’s even possible to use `and` / `or` and grouping for complex filtering.

    Library (implemented in Laravel): https://github.com/hyvor/laravel-filterq

    Sub-directory hosting:

    We designed a new way to host a blog in a subdirectory of a web application. Let’s say you have a Laravel application at example.com. We created Delivery API [https://blogs.hyvor.com/docs/api-delivery] to help you host your blog at example.com/blog.

    This API tells you how to deliver a response for a request (hence “Delivery” API). For example, when your Laravel app receives a request to /blog/hello-world, your app calls the Delivery API to learn how to respond to “/hello-world”. The Delivery API returns a JSON with all the data needed. Your app will then use that JSON response to create an HTTP response and send back the response to the client. It will also save the response in the cache so that it doesn’t have to call the Delivery API next time for the same path.

    This is quite similar to a reverse proxy with caching, but the JSON API makes it easier to use it in web applications as we do not need HTTP parsing logic.

    This is also similar to how our “first-request” caching works, but this time this caching happens inside your web application. To clear the cache, we use webhooks.

    For now, we have developed libraries for Laravel and Symfony for sub-directory hosting, with plans to cover more frameworks in the future.

    Rich Editor

    This was probably the hardest part of all. We spent months testing many frameworks like Draft.js, Prosemirror, and even pre-built rich editors like TinyMCE. We wanted customizability and also ease-of-use. No framework checked all boxes.

    We decided to go with ProseMirror [https://prosemirror.net]. It was complex but eventually, we came to understand the power of it. It has a steep learning curve, but it’s totally worth it. We actually enjoy writing Prosemirror plugins now to add some functionality to the Rich Editor. Also, recently the author added typescript support, which incredibly improved the experience. We created many nodes like Blockquotes, Callouts (with emoji), Images with captions, Embeds, and Bookmarks pretty easily after that. ProseMirror has quite good browser support as well.

    Flashload

    I’ve been a fan of InstantClick [http://instantclick.io/]. We wanted to add something similar to all blogs to add a “fake-fast” effect. If you haven’t used InstantClick before, it is a simple library that turns separate HTML pages into a single-page app. It starts loading content on the mouseoever event of a link and replaces the when clicked on it. This makes navigation super fast. We created an almost copy of Instantclick named Flashload [https://github.com/hyvor/flashload] with additional configurations and optimized caching. Feel free to use it in your projects :)

    Overall, it’s been a great learning experience working on Hyvor Blogs. We’d love to know what HN thinks about our project. I am happy to answer any questions you might have.

  • What are some non visual frameworks that you use to improve site page speed and asset optimization?
    2 projects | /r/webdev | 28 Dec 2021
    A colleague recommended this one to me: http://instantclick.io/
  • Stop Building a General Purpose API to Power Your Own Front End
    2 projects | news.ycombinator.com | 13 Sep 2021
    You can still benefit from something like https://github.com/dieulot/instantclick as a poor man's replacement of Turbo(links).

ActiveAdmin

Posts with mentions or reviews of ActiveAdmin. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-10-28.
  • Ask HN: Why aren't Django Admin style dashboards popular in other frameworks?
    6 projects | news.ycombinator.com | 28 Oct 2023
    Can you clarify what's the "tremendous value" you're getting out of the Django admin?

    At Heii On-Call https://heiioncall.com/ we are using Active Admin https://activeadmin.info/ for Ruby on Rails, which seems quite similar to the Django admin. In my experience, it's mostly useful as a fairly basic read-only view of what's in the database. In Rails, it's so easy to whip together a custom view that we tend to do that, and the Active Admin is nice to have but I wouldn't say "tremendous value".

  • Top 5 Ruby on Rails Gems
    5 projects | dev.to | 4 Jan 2023
    Github Link : https://github.com/activeadmin/activeadmin
  • View code coverage (active_admin and orther .arb file)
    2 projects | /r/rails | 14 Sep 2022
    for those who know [https://activeadmin.info/](https://activeadmin.info/) it uses a file format [https://github.com/activeadmin/arbre](https://github.com/activeadmin/arbre)
  • Show HN: Build Ruby on Rails apps 10x faster – Avo
    12 projects | news.ycombinator.com | 21 Jun 2022
    Very neat! My first thought was that this was a competitor to https://bullettrain.co/.

    Looking into it a bit more, it seems more aimed at building admin panels than whole apps. I guess it competes against tools like https://activeadmin.info/?

  • From partials to ViewComponents: writing reusable front-end code in Rails
    11 projects | dev.to | 3 Jun 2022
    We briefly considered migrating to a full-grown Rails admin interface, such as ActiveAdmin, RailsAdmin, Administrate or Avo. We especially liked Avo which is built on a very modern stack similar to ours (Tailwind + Hotwire + ViewComponents). In the end, we didn’t go this route as we found some of the options a bit too restrictive (even though Avo is very flexible) and we did not feel like trying to amend it to our needs. For example, Avo renders forms in a 1-field-per-row layout while we wanted something more similar to the Tailwind UI Stacked form layout. Nevertheless, we found a great deal of inspiration in the Avo code and its design principles.
  • Ask HN: Easiest way to build a CRUD app
    19 projects | news.ycombinator.com | 13 Feb 2022
    I second Rails. It's incredibly polished and has really good gems to speed up dev. ActiveAdmin is a great gem if you need to quickly make an admin dashboard. It was useful when I had a small consultancy.

    https://activeadmin.info/

  • Eager to help a Junior without experience?
    1 project | /r/rails | 8 Jan 2022
  • Admin Framework for Rails
    10 projects | /r/rails | 10 Nov 2021
    See an example: https://activeadmin.info It provides a fast way to create back office functionality.
  • We built an open-source platform (3k stars on GitHub) for building &amp; deploying react based internal tools.
    3 projects | /r/reactjs | 13 Sep 2021
    [1] https://activeadmin.info/
  • Stop Building a General Purpose API to Power Your Own Front End
    2 projects | news.ycombinator.com | 13 Sep 2021
    I can't speak much about Rails, as I've only played with it. But I've used a lot Django in the past.

    Regarding the Django admin (in rails you have ActiveAdmin[1]) think if it just as a glorified database explorer. It is an internal tool for developers, product managers and maybe for your support team. It is in no way thought to be used by end users. Every attempt I've seen to use it as such was a catastrophic failure.

    With Django, if you know plain HTML and CSS, with the tools I've mentioned in the comment you're responding to, you can build almost anything... For example, let's say you need a highly interactive client side table.... you can always just attach a Vue or a React component for it by using Unpoly compilers [2].

    I'd say this stack is less useful the more your app needs to work fully offline... but if you don't have that constraint... I cannot think of anything that can't be built faster and safer.

    [1] https://activeadmin.info/

    [2] https://unpoly.com/up.compiler

What are some alternatives?

When comparing InstantClick and ActiveAdmin you can also consider the following projects:

Turbolinks - Turbolinks makes navigating your web application faster

RailsAdmin - RailsAdmin is a Rails engine that provides an easy-to-use interface for managing your data

Gantt chart for React.JS - dhtmlxGantt with ReactJS

Administrate - A Rails engine that helps you put together a super-flexible admin dashboard.

Vue Storefront - Alokai is a Frontend as a Service solution that simplifies composable commerce. It connects all the technologies needed to build and deploy fast & scalable ecommerce frontends. It guides merchants to deliver exceptional customer experiences quickly and easily.

Trestle - A modern, responsive admin framework for Ruby on Rails

lighthouse - Automated auditing, performance metrics, and best practices for the web.

Avo - Build Ruby on Rails apps 10x faster

CacheP2P - "More users = More capacity"

go-admin - A golang framework helps gopher to build a data visualization and admin panel in ten minutes

Fly CDN - A set of useful libraries for Edge Apps. Run locally, write tests, and integrate it into your deployment process. Move fast and maybe don't break things? Because, gosh darnit, you're an adult.

ActiveScaffold - Save time and headaches, and create a more easily maintainable set of pages, with ActiveScaffold. ActiveScaffold handles all your CRUD (create, read, update, delete) user interface needs, leaving you more time to focus on more challenging (and interesting!) problems.